Large organizations often develop multiple software applications (apps) that overlap, in parallel. The same is true of different small organizations and open-source contributors. Overlap is a source of multiple problems such as redundancy resulting in wasted work, inconsistency causing unsatisfactory user experience especially if the apps are developed by the same company, and maintainability (e.g., fixing hugs, adding features, etc.).
For example, organizations are developing many different mobile apps at the same time and these are dominated by user interaction and experience (e.g., storyboards, UI widgets, etc.).
Conventionally, identical code or, in more sophisticated implementations, similar code (obtained for example by modifying code that was previously copied and pasted) is desired to be detected. However, conventional techniques have failed.